#include "StaticJavaLib.h"
#include "gc.h"
struct IntRemainder{
};

int IntRemainder_remainder(int i,int j){
  return i % j;
}

void main(int argc,char** argv){
  StaticJavaLib_assertTrue(2 % 3 == 2);
  StaticJavaLib_assertTrue(2 % -3 == 2);
  StaticJavaLib_assertTrue(-2 % 3 == -2);
  StaticJavaLib_assertTrue(-2 % -3 == -2);
  StaticJavaLib_assertTrue(3 % 2 == 1);
  StaticJavaLib_assertTrue(3 % -2 == 1);
  StaticJavaLib_assertTrue(-3 % 2 == -1);
  StaticJavaLib_assertTrue(-3 % -2 == -1);
  StaticJavaLib_assertTrue(IntRemainder_remainder(2,3) == 2);
  StaticJavaLib_assertTrue(IntRemainder_remainder(2,-3) == 2);
  StaticJavaLib_assertTrue(IntRemainder_remainder(-2,3) == -2);
  StaticJavaLib_assertTrue(IntRemainder_remainder(-2,-3) == -2);
  StaticJavaLib_assertTrue(IntRemainder_remainder(3,2) == 1);
  StaticJavaLib_assertTrue(IntRemainder_remainder(3,-2) == 1);
  StaticJavaLib_assertTrue(IntRemainder_remainder(-3,2) == -1);
  StaticJavaLib_assertTrue(IntRemainder_remainder(-3,-2) == -1);
  gc_recycle();
}
